四設計一甲 第七組期末專案示範網站

1-2 開啟Tkinter << Previous Next >> 1-4 將兩種結合

1-3 Tkinter介面按鈕定義

經過1-2的操作之後,我們發現Tkinter裡像是 標題(title)、標籤(Label)、按鈕(Button)

都可以使其定義成特定的名稱,再將其導入

我們將這個發現帶入專題

想要做出一台計算機,計算機的按鈕是不是可以用Tkinter設計出來?

並按下按鍵就可以輸入想要的數字?

1-3 做出簡單的定義按鈕及輸入數字在Tkinter視窗上的程式

 

import sys
from tkinter import *

NFU=Tk()

frame=Frame(NFU)
frame.pack()

NFU.title("calculator")

#建立可供輸入的視窗
num1=StringVar()

topframe=Frame(NFU)
topframe.pack(side=TOP)

block=Entry(frame,textvariable=num1,bd=20,insertwidth=1,font=30)
block.pack(side=TOP)

#定義鍵盤輸入

operator=""
def clear():
   block.delete(0,END)
   return
   
def clickbut(numbers):
    global operator
    operator=operator+str(numbers)
    num1.set(operator)
    
#建立可輸入的按鍵設定

#第一排
frame=Frame(NFU)
frame.pack(side=TOP)

b1=Button(frame,padx=16,pady=16,bd=8,text="1",fg="black",command=lambda:clickbut(1))
b1.pack(side=LEFT)
b2=Button(frame,padx=16,pady=16,bd=8,text="2",fg="black",command=lambda:clickbut(2))
b2.pack(side=LEFT)
b3=Button(frame,padx=16,pady=16,bd=8,text="3",fg="black",command=lambda:clickbut(3))
b3.pack(side=LEFT)
b4=Button(frame,padx=16,pady=16,bd=8,text="+",fg="black",command=lambda:clickbut("+"))
b4.pack(side=LEFT)

#第二排
secondframe=Frame(NFU)
secondframe.pack(side=TOP)

b1=Button(secondframe,padx=16,pady=16,bd=8,text="4",fg="black",command=lambda:clickbut(4))
b1.pack(side=LEFT)
b2=Button(secondframe,padx=16,pady=16,bd=8,text="5",fg="black",command=lambda:clickbut(5))
b2.pack(side=LEFT)
b3=Button(secondframe,padx=16,pady=16,bd=8,text="6",fg="black",command=lambda:clickbut(6))
b3.pack(side=LEFT)
b4=Button(secondframe,padx=16,pady=16,bd=8,text="-",fg="black",command=lambda:clickbut("-"))
b4.pack(side=LEFT)

#第三排
thirdframe=Frame(NFU)
thirdframe.pack(side=TOP)

b1=Button(thirdframe,padx=16,pady=16,bd=8,text="7",fg="black",command=lambda:clickbut(7))
b1.pack(side=LEFT)
b2=Button(thirdframe,padx=16,pady=16,bd=8,text="8",fg="black",command=lambda:clickbut(8))
b2.pack(side=LEFT)
b3=Button(thirdframe,padx=16,pady=16,bd=8,text="9",fg="black",command=lambda:clickbut(9))
b3.pack(side=LEFT)
b4=Button(thirdframe,padx=16,pady=16,bd=8,text="*",fg="black",command=lambda:clickbut("*"))
b4.pack(side=LEFT)

#第四排
fourthframe=Frame(NFU)
fourthframe.pack(side=TOP)

b1=Button(fourthframe,padx=16,pady=16,bd=8,text="0",fg="black",command=lambda:clickbut(0))
b1.pack(side=LEFT)
b2=Button(fourthframe,padx=16,pady=16,bd=8,text=".",fg="black",command=lambda:clickbut("."))
b2.pack(side=LEFT)
b3=Button(fourthframe,padx=16,pady=16,bd=8,text="C",fg="black",command=clear)
b3.pack(side=LEFT)
b4=Button(fourthframe,padx=16,pady=16,bd=8,text="/",fg="black",command=lambda:clickbut("/"))
b4.pack(side=LEFT)


#第五排
fivthframe=Frame(NFU)
fivthframe.pack(side=TOP)
b1=Button(fivthframe,padx=104,pady=16,bd=8,text="=",fg="black")
b1.pack(side=LEFT)



NFU.mainloop()


1-2 開啟Tkinter << Previous Next >> 1-4 將兩種結合